Data processing systems include memory devices for storing, processing, and moving data. A memory device, or memory, is generally a physical component of a data processing system configured to store data. Physical memory in a data processing system can include any number of memory devices operating together as the memory available to processes executing in the data processing system.
Physical memory is addressed using physical addresses that point at locations in the physical memory. The physical addresses belong to a physical address space configured in the data processing system. A virtual address is an address that has to be mapped to a physical address to access the data stored in the location corresponding to the physical address.
A process executing in the data processing system does not reference the physical memory using physical addresses. The process can only use virtual addresses from a virtual address space that is specified and configured for use by the process. Other processes similarly use virtual addresses from other virtual address spaces to access physical memory.
The virtual address to physical address mapping allows an operating system, or a memory management subsystem thereof, to offer more memory in virtual form to the processes that execute in the data processing system than is physically available in the data processing system. Furthermore, the virtual address to physical address mapping allows an operating system, or a memory management subsystem thereof, to share some memory space amongst processes where the processes share common data, and keep the processes' individual data separate from other processes.
A page frame, or a frame, is a fixed size chunk of physical memory that is mapped by a single translation entry in the memory management subsystem. When a process changes even a bit in a frame, the entire frame is deemed to have changed. When a process requests even a bit of data within a frame, the entire frame has to be resident in memory. If the frame of the requested data is not resident in memory, the memory management subsystem brings the entire frame into memory from a secondary data storage unit, such as a hard disk drive, via a mechanism called a page fault.
A commonly used frame size is 4 kilobytes (KB), which was established in the early days of computers, when physical memory available in computers was of the order of KB or megabytes (MB)—significantly smaller than physical memories being configured in presently available computing systems. For example, presently, data processing systems having gigabytes (GB) of physical memory are commonplace, and systems with terabytes (TB) of physical memory are not uncommon. Modern operating systems allow addressing using addresses that are 64 bits long, allowing for page frames that can be as large as the addressability of the system.